function configuraImagemTopo(){
	
	var heightImagem = 399;
	var widthImagem = 747;
	
	var altura = parseInt(heightImagem / widthImagem * ($(".centraliza-imagem").width() - 50));
	var largura = parseInt(widthImagem / heightImagem * altura);
	
	if (largura >= widthImagem){
		$(".carousel-imagem").height(heightImagem);
		$(".carousel-imagem").width(widthImagem);
	}else{
		$(".carousel-imagem").height(altura);
		$(".carousel-imagem").width(largura);
	}
}

function enviaEmail(){
	
	run_waitMe();
	
	//Limpando texto da modal
	$('#mensagemContato').html("");
	
	//Colocando um nome para o título da modal
	$(".modal-title").html("Fale Conosco");
	
	desabilitaBotoes();
	
	$.ajax({
        url:  basepath+"site/pagina_inicial/enviaEmail",
        data: $('#formContato').serialize(),
        type: 'POST',
        async: false,
        success: function(retorno){
        	
        	stop_waitMe();
        	
        	habilitaBotoes();
        	
    		if (retorno == true) {
    			
    			var nome = $('#nome').val();
    			
    			$('.modal-body').html('<p><strong>'+nome+'</strong>. Sua mensagem foi enviada com sucesso. Em até 24h entraremos em contato com você.</p>');

    			limparForm();
    			
    		} else {
    			
    			$('.modal-body').html('<p>Ocorreu um erro ao enviar o email, tente novamente mais tarde.</p>');
    		}
    		
    		$("#myModal").modal('show');
        	
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
        	
        	stop_waitMe();
        	
        	habilitaBotoes();
        	
        	$('#mensagemContato').html('Ocorreu um erro ao enviar o email, tente novamente mais tarde.');
        	
        	$("#myModal").modal('show');
        }
    });
	
}

function inicializarComponentes(){
	
	 var SPMaskBehavior = function (val) {
		 return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
	 },
	 spOptions = {
		onKeyPress: function(val, e, field, options) {
			field.mask(SPMaskBehavior.apply({}, arguments), options);
	    }
	 };

	 $('#telefone').mask(SPMaskBehavior, spOptions);
	
	 $("#mensagem").keyup(function(event){
		 
	        // abaixo algumas variáveis que iremos utilizar.
	 
	        // pega a span onde esta a quantidade máxima de caracteres.
	        var target    = $("#content-countdown");
	 
	        // pego pelo atributo title a quantidade maxima permitida.
	        var max        = target.attr('title');
	 
	        // tamanho da string dentro da textarea.
	        var len     = $(this).val().length;
	 
	        // quantidade de caracteres restantes dentro da textarea.
	        var remain    = max - len;
	 
	        // caso a quantidade dentro da textarea seja maior que
	        // a quantidade maxima.
	        if(len > max)
	        {
	            // abaixo vamos pegar tudo que tiver na string e limitar
	            // a quantidade de caracteres para o máximo setado.
	            // isso significa que qualquer coisa que seja maior que
	            // o máximo será cortado.
	            var val = $(this).val();
	            $(this).val(val.substr(0, max));
	 
	            // setamos o restante para 0.
	            remain = 0;
	        }
	 
	        // atualizamos a quantidade de caracteres restantes.
	        target.html(remain);
	 
	    });
	 	
	 $(window).resize(function() {
        // Adicionar sempre que a tela for redimensionada
		 configuraImagemTopo();
	 });
		
}

function formContato() {
	
	$('#formContato').formValidation({
		framework: 'bootstrap',
		excluded: [':disabled', ':hidden', ':not(:visible)'],
		button: {
		    // The disabled class
		    disabled: ''
		},
        icon: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
		fields : {
			nome : {
				row: '.col-lg-6',
				validators : {
					notEmpty : {
						message : 'Favor informar seu nome.'
					},
                    stringLength: {
                        min: 3,
                        max: 150,
                        message: 'Nome não pode conter menos de 3 caracteres e mais que 150 caracteres.'
                    }
				}
			},
			assunto : {
				row: '.col-lg-6',
				validators : {
					notEmpty : {
						message : 'Favor informar um assunto.'
					},
                    stringLength: {
                        min: 3,
                        max: 100,
                        message: 'Assunto não pode conter menos de 3 caracteres e mais que 100 caracteres.'
                    }
				}
			},
			email : {
				row: '.col-lg-6',
				validators : {
					notEmpty : {
						message : 'Favor informar um email para contato.'
					},
					emailAddress: {
                        message: 'Email inválido.'
                    }					
				}
			},
			telefone : {
				row: '.col-lg-6',
				validators : {
					notEmpty : {
						message : 'Favor informar um telefone para contato.'
					}
				}
			},
			mensagem : {
				validators : {
					notEmpty : {
						message : 'Favor informar uma mensagem.'
					},
					stringLength: {
						min: 3,
						max: 2000,
                        message: 'Mensagem não pode conter menos de 3 caracteres e mais que 2000 caracteres.',
                    	
                    }
				}
			}
		}
	})
	.on('success.form.fv', function(e) {		
		// Prevent form submission
        e.preventDefault();
        
        enviaEmail();
    });
}

function desabilitaBotoes(){
	// Desabilita os botões
	$("#buttonEnviar").attr("disabled", "disabled");
}

function habilitaBotoes(){
	// Habilita o botão novamente
	$("#buttonEnviar").removeAttr("disabled");
}

function limparForm(){
	
	$('#formContato').each (function(){
		  this.reset();
		});
	
	$('#formContato').data('formValidation').resetForm();
}

function init(){	
	
    $('body').scrollspy({
        target: '.navbar-fixed-top',
        offset: 80
    })

    // Page scrolling feature
    $('a.page-scroll').bind('click', function(event) {
        var link = $(this);
        $('html, body').stop().animate({
            scrollTop: $(link.attr('href')).offset().top - 70
        }, 500);
        event.preventDefault();
    });
    
    $("[data-toggle=popover]").popover();
	
	formContato();
	
	inicializarComponentes();
	
	configuraImagemTopo();
	
}

function run_waitMe(){
	$('#page-top').waitMe({
		effect: 'timer',
		text: 'Aguarde Processando...',
		bg: 'rgba(255,255,255,0.7)',
		color:'#000',
		sizeW:'',
		sizeH:''
	});
}

function stop_waitMe(){
	$('#page-top').waitMe('hide');
}

$(document).ready(init);

//Activate WOW.js plugin for animation on scrol
new WOW().init();